/**
 * 装饰器抽象类 - 装饰器模式中的抽象装饰器
 * 
 * 实现了Component接口，并持有一个Component的引用
 * 所有具体装饰器都继承自此类
 */
package com.mkx.structurals.decorator;

public abstract class Decorator implements Component {
    // 持有一个组件的引用
    protected Component component;
    
    /**
     * 构造函数，注入要装饰的组件
     * 
     * @param component 要装饰的组件
     */
    public Decorator(Component component) {
        this.component = component;
    }
    
    @Override
    public void operation() {
        // 调用被装饰组件的操作
        if (component != null) {
            component.operation();
        }
    }
}